package com.sc.nft.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sc.nft.enums.ClassifyType;
import com.sc.nft.enums.CommodityType;
import com.sc.nft.enums.NFTProductShowSalvagePrefectureEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class PageProductVO {
    @ApiModelProperty("商品id")
    private Long productId;

    @ApiModelProperty("一级标题")
    private String firstTitle;

    @ApiModelProperty("二级标题")
    private String secondTitle;

    @ApiModelProperty("创作内容")
    private String creationContent;

    @ApiModelProperty("售卖价格")
    private BigDecimal productNum;

    @ApiModelProperty("排序")
    private Long collectionsConcernedNum;

    @ApiModelProperty("积分价格")
    private BigDecimal integralNum;

    @ApiModelProperty("售卖数量")
    private Integer productCount;

    @ApiModelProperty("产品介绍")
    private String productPresentation;

    @ApiModelProperty("是否售罄 0:否 1:是")
    private Boolean isSoldOut;

    @ApiModelProperty("已经卖了多少了")
    private Integer alreadyNum;

    @ApiModelProperty("可出售数量")
    private BigDecimal laveNum;

    @ApiModelProperty("冻结数量")
    private BigDecimal frozenNum;

    @ApiModelProperty("前台展示的商品ID")
    private String digitalCollectionProductInfoUuid;

    @ApiModelProperty("商品类型:1普通商品 2积分兑换商品")
    private CommodityType commodityType;

    @ApiModelProperty("分类 : 1:数字藏品 2:盲盒")
    private ClassifyType typeClassify;

    @ApiModelProperty("作者昵称")
    private String nickName;

    @ApiModelProperty("上架状态 true上架中 false已下架")
    private Boolean status;

    @ApiModelProperty("商品状态:1:立即购买 2:立即抢购 3:已售罄啦 4:暂未开始")
    private Integer productType;

    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date beginTime;
    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
    @ApiModelProperty("是否开启购买")
    private Boolean isEnable;
    @ApiModelProperty("购买上限")
    private Integer upperLimit;

    @ApiModelProperty("优先购数量(个人)")
    private Integer priorityPurchaseLimit;

    @ApiModelProperty("优先购购买上限(所有人)")
    private Integer priorityPurchaseAllLimit;

    @ApiModelProperty("优先购开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date priorityPurchaseBeginTime;

    @ApiModelProperty("优先购结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date priorityPurchaseEndTime;
    @ApiModelProperty("优先购数量")
    private Integer rushBuyLimit;

    @ApiModelProperty("优先抢开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date rushBuyBeginTime;

    @ApiModelProperty("优先抢结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date rushBuyEndTime;
    @ApiModelProperty("是否是优先购商品 ")
    private Boolean isPriorityPurchase;

    @ApiModelProperty("是否是优先抢商品")
    private Boolean isRushBuy;

    @ApiModelProperty("商品类型名称")
    private String commodityTypeName;


    @ApiModelProperty("权益道具id")
    private Long equityPropsId;

    @ApiModelProperty("权益道具数量")
    private Integer equityPropsNum;

    @ApiModelProperty("是否可以一键售罄")
    private Boolean isCanSoldOut;

    @ApiModelProperty("是否锁仓")
    private Boolean isLockedPosition;

    @ApiModelProperty("是否为仅熔炼")
    private Boolean isSmeltingOnly;

    @ApiModelProperty("锁仓类型 0:省缺 1:时间模式 2:日期形式 时间模式是获取藏品后延后多久,日期形式是统一锁到对应的时间")
    private Integer lockedPositionType;

    @ApiModelProperty("锁仓市场小时")
    private Integer lockedPositionHour;

    @ApiModelProperty("锁仓到期日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lockedPositionTime;
    @ApiModelProperty("分润模板Id")
    private Long shareProfitPanelId;

    @ApiModelProperty("是否为平台展示")
    private Boolean platformShow;

    @ApiModelProperty("是否为品牌岛展示")
    private Boolean brandShow;

    @ApiModelProperty("是否为企业展示")
    private Boolean firmShow;

    @ApiModelProperty("合成数量")
    private Integer synthesisCount;

    @ApiModelProperty("展示专区")
    private NFTProductShowSalvagePrefectureEnum showSalvagePrefecture;

    @ApiModelProperty("是否开启注册时间限制")
    private Boolean isRegisterTime;

    @ApiModelProperty("注册开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerBeginTime;

    @ApiModelProperty("注册结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerEndTime;

    @ApiModelProperty("铸造/重铸须知")
    private String ecologyCastPresentation;
}
